package edu.ynu.se.xiecheng.achitectureclass.dao;

import edu.ynu.se.xiecheng.achitectureclass.common.dao.LogicDAO;
import edu.ynu.se.xiecheng.achitectureclass.entity.NitrogenLevel;
import edu.ynu.se.xiecheng.achitectureclass.entity.Equipment;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

/**
 * NitrogenLevelDao 接口
 * 用于访问和操作 NitrogenLevel 实体的数据
 */
@Repository
public interface NitrogenLevelDao extends LogicDAO<NitrogenLevel, Long> {
    /**
     * 查找设备最新的氮含量数据
     *
     * @param equipment 设备对象
     * @return 最新的氮含量数据
     */
    NitrogenLevel findTopByEquipmentOrderByRecordedTimeDesc(Equipment equipment);

    /**
     * 查找设备在指定时间范围内的氮含量数据，并按时间降序排列
     *
     * @param equipment 设备对象
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return 氮含量数据列表
     */
    List<NitrogenLevel> findByEquipmentAndRecordedTimeBetweenOrderByRecordedTimeDesc(
            Equipment equipment, Date startTime, Date endTime);
}